<?php

class RazredPeer extends BaseRazredPeer
{
    public static function getGrupas($skola_id)
    {
        $grupa_arr = array();
        $grupas = DbFinder::from('Razred')->with('Smer')->join('Smer')->where('SkolaId', $skola_id)->where('Smer.Tip', SmerPeer::$tip['grupni'])->find();
        foreach($grupas as $grupa)
        {
            $grupa_arr[$grupa->getId()] = (string) $grupa->getSmer().' / '.(string) $grupa;
        }

        return $grupa_arr;
    }

    public static function getRazredOperaterList()
    {
      $razred_arr = array('' => '');

      $skolas = DbFinder::from('Skola')->orderBy('Ime')->find();
      foreach($skolas as $skola)
      {
        $razred_arr[$skola->getId().'a'] = (string) $skola;
        $razreds = DbFinder::from('Razred')->where('SkolaId', $skola->getId())->find();
        foreach($razreds as $razred)
        {
          if($razred->getSmer()->getTip() == SmerPeer::$tip['grupni'])
            continue;
          $razred_arr[$razred->getId()] = (string) $razred;
        }
        $razred = array();

      }
      return $razred_arr;
    }

    public static function razredRimski($razred)
    {
        switch ($razred)
        {
            case 1:
              return 'I';
              break;
            case 2:
              return 'II';
              break;
            case 3:
              return 'III';
              break;
            case 4:
              return 'IV';
              break;
            case 5:
              return 'V';
              break;
            case 6:
              return 'VI';
              break;
            case 7:
              return 'VII';
              break;
            case 8:
              return 'VIII';
              break;
        }
    }

    public static function razrediList($skola_id)
    {
        $razred_dbs = DbFinder::from('Razred')->join('Smer')->where('Razred.SkolaId', $skola_id)->where('Smer.Tip', SmerPeer::$tip['redovni'])->orderBy('Razred.Razred')->orderBy('Razred.Slovo')->find();
        $razreds = array('' => 'Izaberi razred');
        foreach($razred_dbs as $razred_db)
          $razreds[$razred_db->getId()] = (string)$razred_db;

        return $razreds;
    }

    public static function razrediOperaterList($skola_id, $user)
    {
        $razred_dbs = DbFinder::from('Razred')->join('Smer')->where('Razred.SkolaId', $skola_id)->where('Id', 'in', $user->getAttribute('razreds'))->where('Smer.Tip', SmerPeer::$tip['redovni'])->orderBy('Razred.Razred')->orderBy('Razred.Slovo')->find();
        $razreds = array('' => 'Izaberi razred');
        foreach($razred_dbs as $razred_db)
          $razreds[$razred_db->getId()] = (string)$razred_db;

        return $razreds;
    }

    public static function razrediIdList($razred_ids)
    {
        $razred_dbs = DbFinder::from('Razred')->leftJoin('Razred.SmerId', 'Smer.Id')->select(array('Id', 'Razred', 'Slovo', 'Smer.Naziv', 'Smer.Tip'))->where('Id', 'in', $razred_ids)->orderBy('Razred')->orderBy('Slovo')->find();
        $razreds = array('' => 'Izaberi razred');
        foreach($razred_dbs as $razred_db)
          $razreds[$razred_db['Id']] = self::razredRimski($razred_db['Razred']).' - '.$razred_db['Slovo'].(($razred_db['Smer.Tip'] == SmerPeer::$tip['grupni']) ? ' '.$razred_db['Smer.Naziv'] : '');

        return $razreds;
    }

}